const { mysql } = require('../../mysql');
// 查找历史记录和热门搜索
async function indexAction(ctx) {
  const openId = ctx.query.openId
  //取出默认关键字
  const defaultKeyword = await mysql('nideshop_keywords').where({ is_default: 1 }).limit(1).select()
  // 取出热门关键字
  const hotKeywordList = await mysql('nideshop_keywords').distinct('keyword').column('keyword', 'is_hot').limit(10).select()
  const historyData = await mysql('nideshop_search_history').where({ 'user_id': openId }).limit(10).select()
  ctx.body = {
    'defaultKeyword': defaultKeyword[0],
    'hotKeywordList': hotKeywordList,
    'historyData': historyData
  }
}

//添加搜索历史
async function addHistoryAction(ctx) {
  //` 这两个参数是从前端传递过来的，在后端解构一下然后进行使用
  const { openId, keyword } = ctx.request.body
  //.如果有oldData，那么说明我们从前端传递过来的keyword，已经存在于历史搜索的那张表里了，那么我们就不要进行第二次保存了,所以oldData就是用来判断我们传递过来的keyword需不需要被加入到表中，以作为我们的存储的历史记录
  const oldData = await mysql('nideshop_search_history').where({ user_id: openId, keyword: keyword }).select()
  if (oldData == 0) {//`如果没有在表中找到这个字段 则向数据库中插入所输入的字段
    const data = await mysql('nideshop_search_history').insert({
      'user_id': openId, //+ user_id  keyword add_time 是数据库中规定好的字段
      'keyword': keyword,
      'add_time': parseInt(new Date().getTime() / 1000)
    })
    if (data) {
      ctx.body = {
        data: 'success'
      }
    } else {
      ctx.body = {
        data: 'fail'
      }
    }
  } else {
    ctx.body = {
      data: '已经有记录了'
    }
  }
}
//清除历史记录方法
async function clearHistoryAction(ctx) {
  const openId = ctx.request.body.openId
  // console.log(openId);
  const data = await mysql('nideshop_search_history').where({ user_id: openId }).del()
  if (data) {
    ctx.body = {
      'data': '清除成功'
    }
  } else {
    ctx.body = {
      'data': null
    }
  }
  // console.log(data); 这个data是del返回删除数据的个数
}
//=搜索时匹配搜索相关的内容 
async function helperAction(ctx) {
  const keyword = ctx.query.keyword
  var order = ctx.query.order
  if (!order) {
    order = ''
    orderBy = 'id'
  } else {
    orderBy = 'retail_price'
  }
  const keywords = await mysql('nideshop_goods').orderBy(orderBy, order).column('id', 'name', 'list_pic_url', 'retail_price').where('name', 'like', '%' + keyword + '%').limit(10).select()
  if (keywords) {
    ctx.body = {
      keywords
    }
  } else {
    ctx.body = {
      keywords: []
    }
  }
}
module.exports = { addHistoryAction, indexAction, clearHistoryAction, helperAction }